﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///Коды операций по объектам недвижимости для декларации
	///</summary>
	[DataContract]
	public enum НДСКодыОперацийПоОбъектамНедвижимости
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///Объект недвижимости приобретен по договору купли-продажи (1011803)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"84308f2f-a517-4541-8cfb-7d71250758b7\", \"Представление\":\"Приобретение\"}")]
		Приобретение = 0,//Приобретение объекта недвижимости
	///<summary>
	///Объект недвижимости, завершенный капитальным строительством подрядными организациями (1011801)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"45bf987e-6f55-4f43-9224-083eb32217b3\", \"Представление\":\"СМРПодрядные\"}")]
		СМРПодрядные = 1,//Строительно-монтажные работы подрядные
	///<summary>
	///Объект недвижимости,  завершенный капитальным строительством при выполнении строительно-монтажных работ для  собственного потребления (1011802)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"b00c10d8-9597-4b10-a9d2-a7f63578382d\", \"Представление\":\"СМРСобственные\"}")]
		СМРСобственные = 2,//Строительно-монтажные работы для собственного потребления
	}
	public static partial class НДСКодыОперацийПоОбъектамНедвижимости_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///Объект недвижимости приобретен по договору купли-продажи (1011803)
		///</summary>
		public static readonly Guid Приобретение = new Guid("717dfb8c-0725-b758-4541-a51784308f2f");//Приобретение объекта недвижимости
		///<summary>
		///Объект недвижимости, завершенный капитальным строительством подрядными организациями (1011801)
		///</summary>
		public static readonly Guid СМРПодрядные = new Guid("3e082492-22b3-b317-4f43-6f5545bf987e");//Строительно-монтажные работы подрядные
		///<summary>
		///Объект недвижимости,  завершенный капитальным строительством при выполнении строительно-монтажных работ для  собственного потребления (1011802)
		///</summary>
		public static readonly Guid СМРСобственные = new Guid("f6a7d2a9-7835-2d38-4b10-9597b00c10d8");//Строительно-монтажные работы для собственного потребления
		public static НДСКодыОперацийПоОбъектамНедвижимости Получить(this НДСКодыОперацийПоОбъектамНедвижимости Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static НДСКодыОперацийПоОбъектамНедвижимости Получить(this НДСКодыОперацийПоОбъектамНедвижимости Значение, Guid Ссылка)
		{
			if(Ссылка == Приобретение)
			{
				return НДСКодыОперацийПоОбъектамНедвижимости.Приобретение;
			}
			else if(Ссылка == СМРПодрядные)
			{
				return НДСКодыОперацийПоОбъектамНедвижимости.СМРПодрядные;
			}
			else if(Ссылка == СМРСобственные)
			{
				return НДСКодыОперацийПоОбъектамНедвижимости.СМРСобственные;
			}
			return НДСКодыОперацийПоОбъектамНедвижимости.ПустаяСсылка;
		}
		public static byte[] Ключ(this НДСКодыОперацийПоОбъектамНедвижимости Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this НДСКодыОперацийПоОбъектамНедвижимости Значение)
		{
			switch (Значение)
			{
				case НДСКодыОперацийПоОбъектамНедвижимости.Приобретение: return Приобретение;
				case НДСКодыОперацийПоОбъектамНедвижимости.СМРПодрядные: return СМРПодрядные;
				case НДСКодыОперацийПоОбъектамНедвижимости.СМРСобственные: return СМРСобственные;
			}
			return Guid.Empty;
		}
	}
}